﻿using sipfe.Controllers.Base;
using sipfe.model.dataAccess;
using sipfe.service.persona;
using sipfe.util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;

namespace sipfe.Areas.Persona.Controllers
{
    public class MantePersonController : BaseSipfeController
    {
        string Titulo = "GESTIÓN DE DATOS DE PERSONA NATURAL";

        //AddPersonaNaturalPop
        public ViewResult TabRegNuevaPersona(string swReg, string nIdePersonaCSM)
        {
            ViewBag.swReg = swReg;
            ViewBag.nIdePersonaCSM = nIdePersonaCSM;
            return View("nuevo/TabRegNuevaPersona");
        }
        public ActionResult regDatosPersonaInp(string swReg, string nIdePersonaCSM)
        {
            cargaPersonaNaturalPop();
            ViewBag.swReg = swReg;
            ViewBag.nIdePersona = nIdePersonaCSM;
            if (!string.IsNullOrEmpty(nIdePersonaCSM))
            {
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosPersonaInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersonaCSM)).FirstOrDefault());
            }
            return View("nuevo/regDatosPersonaInp");
        }
        [HttpPost]
        public ActionResult regDatosPersonaInp(SIPMaePersona sipMaePersona)
        {
            if (ModelState.IsValid)
            {
                string swReg = Request["swReg"];
                PersonaService personaService = new PersonaService();
                String[] rpta = personaService.AddNuevaPersonaPoPupService(sipMaePersona);
                string nombrecito = rpta[3];
                string hh = rpta[0];
                var rptax = new HtmlString(nombrecito);
                ViewBag.nombre = nombrecito;
                //return RedirectToAction("TabRegNuevaPersona", new { nIdePersonaCSM = rpta[0], swReg = swReg, pais = sipMaePersona.nIdeCodPaisDoc, tipo = sipMaePersona.nIdeTipoDocum, numero = sipMaePersona.vNumDocum, nombre = sipMaePersona.vPriNombre + " " + sipMaePersona.vPriApellido + " " + sipMaePersona.vSegApellido });
                return RedirectToAction("TabUpdateDatosPersona", new { nIdePersona = rpta[0], swReg = swReg, pais = sipMaePersona.nIdeCodPaisDoc, tipo = sipMaePersona.nIdeTipoDocum, numero = sipMaePersona.vNumDocum, nombre = sipMaePersona.vPriNombre + " " + sipMaePersona.vPriApellido + " " + sipMaePersona.vSegApellido });
            }
            cargaPersonaNaturalPop();
            return View("nuevo/regDatosPersonaInp",sipMaePersona);
        }

        //aqui el codigo para el tab actualizar

        //public ViewResult TabUpdateDatosPersona(string swReg, int nIdePersona)





        public ActionResult regDireccionPersonaInp(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                PersonaService personaService = new PersonaService(); 
                ViewBag.Regiones = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_REGIONES);
                ViewBag.TipoZona = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ZONA);
                ViewBag.TipoVia = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIA);
                ViewBag.swReg = swReg;
                return View("nuevo/regDireccionPersonaInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }
        public ActionResult regAcademicaPersonaInp(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                ViewBag.NivelEstudio    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_ESTUDIO);
                ViewBag.TipoInstitucion = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_INSTITUCION);
                ViewBag.TipoEstudio     = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ESTUDIO);
                ViewBag.GradoAcademico  = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_GRADO_ACADEMICO);
                ViewBag.Idiomas         = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_IDIOMAS);
                ViewBag.NivelIdiomas    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_IDIOMA);
                ViewBag.CertiIdiomas    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CERTIFICACION_IDIOMA);
                ViewBag.OtrosEstudios   = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_ESTUDIO);
                ViewBag.OtroTipoEstudio = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_TIPO_ESTUDIO);
                ViewBag.Reconocimientos = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_RECONOCIMIENTO);
                ViewBag.TipoRecono      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_RECONOCIMIENTO);
                ViewBag.TrabajoSocial   = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TRABAJO_SOCIAL);
                PersonaService personaService = new PersonaService();
                ViewBag.swReg = swReg;
                return View("nuevo/regAcademicaPersonaInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }
        public ActionResult regDatosSocioEconomicos(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
               // ViewBag.PaisEmisor          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
               // ViewBag.TipoDocIdent        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
                ViewBag.Profesiones         = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROFESIONES);
               // ViewBag.Cie10               = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CIE10);
                ViewBag.TipoVivienda        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIVIENDA);
               // ViewBag.ParentescoFamiliar  = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PARENTESCO_FAMILIAR);
               // ViewBag.OtrosIngresos       = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_INGRESOS);
               // ViewBag.OtrosEgresos        = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_EGRESOS);
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosSocioEconomicos", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }
        public ActionResult regDatosReferenciaFamiliar(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
               // ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);

                ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);


                //ViewBag.Profesiones = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROFESIONES);
                ViewBag.Cie10 = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CIE10);
               // ViewBag.TipoVivienda = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIVIENDA);
                ViewBag.ParentescoFamiliar = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PARENTESCO_FAMILIAR);
               // ViewBag.OtrosIngresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_INGRESOS);
                //ViewBag.OtrosEgresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_EGRESOS);
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosReferenciaFamiliar", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }

        public ActionResult regDatosOtrosIngresos(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                //ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
                //ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
               // ViewBag.Profesiones = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROFESIONES);
               // ViewBag.Cie10 = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CIE10);
               // ViewBag.TipoVivienda = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIVIENDA);
               // ViewBag.ParentescoFamiliar = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PARENTESCO_FAMILIAR);
                ViewBag.OtrosIngresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_INGRESOS);
               // ViewBag.OtrosEgresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_EGRESOS);
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosOtrosIngresos", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }

        public ActionResult regDatosEgresos(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
               // ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
                //ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
                //ViewBag.Profesiones = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROFESIONES);
               // ViewBag.Cie10 = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CIE10);
               // ViewBag.TipoVivienda = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIVIENDA);
              //  ViewBag.ParentescoFamiliar = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PARENTESCO_FAMILIAR);
               // ViewBag.OtrosIngresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_INGRESOS);
                ViewBag.OtrosEgresos = formaSelectCompendioLargo(Constante.getInstance().N_IDE_TABLA_OTROS_EGRESOS);
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosEgresos", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }



        //

        public ActionResult regDatosLaborales(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                ViewBag.PaisEmisor          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
                ViewBag.nIdeTipoEstable     = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_SEDE_LABORAL);
                ViewBag.TipoDocIdent        = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
                ViewBag.CondicionLaboral    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CONDICION_LABORAL);
                ViewBag.CargoLaboral        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CARGO_LABORAL);
                ViewBag.EstadoLaboral       = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESTADO_LABORAL);                
                ViewBag.Regiones            = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_REGIONES);
                ViewBag.TipoTrabajador      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_TRABAJADOR);

                
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosLaborales", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }
        public ActionResult regDatosBeneficios(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
                //ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
                ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
                ViewBag.ConceptoPrograma = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROGRAMAS);
                ViewBag.TipoBeneficios = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_BENEFICIOS);
                PersonaService personaService = new PersonaService();
                return View("nuevo/regDatosBeneficios", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }

        public ActionResult regPatrimonioPersonaInp(string nIdePersona, string swReg)
        {
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                PersonaService personaService = new PersonaService();
                ViewBag.TipoBien = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_PATRIMONIO);
                //ViewBag.TipoZona = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ZONA);
                //ViewBag.TipoVia = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIA);
                ViewBag.swReg = swReg;
                return View("nuevo/regPatrimonioPersonaInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
            }
        }

        public ViewResult FormaOptionSubTipoBien(int nIdeTipoBien)
        {
            ViewBag.subTipoBien = formaSelectProvincias(nIdeTipoBien);
            return View();
        }


        public ViewResult TabUpdateDatosPersona(string swReg, int nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            return View("update/TabUpdateDatosPersona");
        }
        public ActionResult updDatosPersonaInp(string swReg, string nIdePersonaCSM)
        {
            cargaPersonaNaturalPop();
            ViewBag.swReg = swReg;
            ViewBag.nIdePersona = nIdePersonaCSM;
            PersonaService personaService = new PersonaService();
            return View("update/updDatosPersonaInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersonaCSM)).FirstOrDefault());
        }
        public ActionResult updEstadoCivilInp(string swReg, string nIdePersonaCSM)
        {
            //cargaPersonaNaturalPop();
            ViewBag.swReg = swReg;
            ViewBag.nIdePersona = nIdePersonaCSM;
            ViewBag.EstadoCivil = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESTADO_CIVIL);
           PersonaService personaService = new PersonaService();
            return View("update/updEstadoCivilInp",personaService.ListaDatosPersonasService(Int32.Parse(nIdePersonaCSM)).FirstOrDefault());
        }
        public ActionResult updTelefonosInp(string swReg, string nIdePersona)
        {           
            ViewBag.swReg = swReg;
            ViewBag.nIdePersona = nIdePersona;            
            PersonaService personaService = new PersonaService();
            return View("update/updTelefonosInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ActionResult updCorreoInp(string swReg, string nIdePersona)
        {
            ViewBag.swReg = swReg;
            ViewBag.nIdePersona = nIdePersona;
            PersonaService personaService = new PersonaService();
            return View("update/updCorreoInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ViewResult TabTabregAcademicaPersonaInp(string swReg, int nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            return View("update/TabTabregAcademicaPersonaInp");
        }
        public ViewResult TabRegSocioEconomicaInp(string swReg, int nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            return View("update/TabRegSocioEconomicaInp");
        }



        public ViewResult updCentroEstudios(string swReg, string nIdePersona)
        {
            ViewBag.nIdePersona     = nIdePersona;
            ViewBag.swReg           = swReg;
            ViewBag.NivelEstudio    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_ESTUDIO);
            ViewBag.TipoInstitucion = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_INSTITUCION);
            ViewBag.TipoEstudio     = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ESTUDIO);
            ViewBag.GradoAcademico  = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_GRADO_ACADEMICO);
            ViewBag.EscalaUni       = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESCALA_UNI);
            ViewBag.DesempenoUni    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_DESEMPENO_UNIVERSITARIO);
            ViewBag.CicloUni        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CICLO_UNIVERSITARIO);
            ViewBag.AnnioCursa      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ANIO_CURSA_ALUMNO);
            
            /*
             decimal anioHoy = UtilitariosUtil.yearNow();
             ViewBag.AnnioCursa_old      = new List<SelectListItem> { 
                new SelectListItem { Text = anioHoy.ToString(), Value = anioHoy.ToString() },
                new SelectListItem { Text = (anioHoy-1).ToString(), Value = (anioHoy-1).ToString() },
                new SelectListItem { Text = (anioHoy-2).ToString(), Value = (anioHoy-2).ToString() },
                new SelectListItem { Text = (anioHoy-3).ToString(), Value = (anioHoy-3).ToString() }
            };
            */
//ViewBag.Clase_Tramite    =   new List<SelectListItem> {new SelectListItem { Text = texto, Value = clase}};


            PersonaService personaService = new PersonaService();
            return View("update/updCentroEstudios", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ViewResult updIdiomasInp(string swReg, string nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            ViewBag.Idiomas = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_IDIOMAS);
            ViewBag.NivelIdiomas = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_IDIOMA);
            ViewBag.CertiIdiomas = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CERTIFICACION_IDIOMA);
            PersonaService personaService = new PersonaService();
            return View("update/updIdiomasInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ViewResult updOtrosEstudiosInp(string swReg, string nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            ViewBag.OtrosEstudios = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_ESTUDIO);
            ViewBag.OtroTipoEstudio = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_TIPO_ESTUDIO);
            PersonaService personaService = new PersonaService();
            return View("update/updOtrosEstudiosInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ViewResult updReconocimientosInp(string swReg, string nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            ViewBag.Reconocimientos = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_RECONOCIMIENTO);
            ViewBag.TipoRecono = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_RECONOCIMIENTO);
            PersonaService personaService = new PersonaService();
            return View("update/updReconocimientosInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }
        public ViewResult updTrabajosSocialesInp(string swReg, string nIdePersona)
        {
            ViewBag.nIdePersona = nIdePersona;
            ViewBag.swReg = swReg;
            ViewBag.TrabajoSocial = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TRABAJO_SOCIAL);  
            PersonaService personaService = new PersonaService();
            return View("update/updTrabajosSocialesInp", personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault());
        }

        public ViewResult ListaNotasPersona(int id_Centro)
        {
            PersonaService personaService = new PersonaService();
            List<SIPDetBoletaNota> lista = new List<SIPDetBoletaNota>();
            lista   =   personaService.ListaNotasPersonaService(id_Centro);
            if (lista.Count > 0) _pagina = "ListaNotasPersona";
            return View(_pagina, lista);
        }

        ///nueva 18enero2014

        public ActionResult IndexDatosPersona()
        {
            ViewBag.TITULO = Titulo;
            ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            //ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            return View("MantePersonaCab");
        }
        public ActionResult ListarPersonaMante(int n_IdePersona)
        {
            PersonaService personaService = new PersonaService();           
            List<SIPMaePersona> lista = new List<SIPMaePersona>();
           lista = personaService.ListaDatosPersonasService(n_IdePersona);
           return View("MantePersonaDet", lista);
        }
        public ViewResult EditarDatosPersonaManteTab_old(int n_idePersonaMante)
        {
            ViewBag.n_idePersonaMante = n_idePersonaMante;
            return View();
        }
        public ActionResult EditarDatosPersonaManteInp(int n_idePersonaMante)
        {
            ViewBag.n_idePersonaMante       =   n_idePersonaMante;
            PersonaService personaService   =   new PersonaService();            
            ViewBag.EstadoCivil             =   formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESTADO_CIVIL);
            SIPMaePersona lista = new SIPMaePersona();
            lista = personaService.ListaDatosPersonasService(n_idePersonaMante).FirstOrDefault();
            return View("EditarDatosPersonaManteInp", lista);
        }
        public HtmlString CheckEstodoCivilExisteMante(string nIde_persona, int idEstadoCivil)
        {            
            PersonaService personaService = new PersonaService();
            int rpta = personaService.CheckEstodoCivilExisteService(nIde_persona, idEstadoCivil);
            var resultado = "{\"rpta\":" + rpta + "}";
            return new HtmlString(resultado);
        }
        public ActionResult UpdateEstadoCivilMante(int n_IdePersona, int idEstadoCivil)
        {
            PersonaService personaService = new PersonaService();            
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            List<SIPMaePersona> lista = new List<SIPMaePersona>();
            lista   =   personaService.UpdateEstodoCivilManteService(n_IdePersona, idEstadoCivil, n_IdeUsuario);
            return View("RODatosEstadoCivil", lista.FirstOrDefault());
        }
        
        public ActionResult AgregaTelefonoMante(int n_IdePersona, string v_Prefijo, string v_NumTelefono)
        {
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            List<SIPMaePersona> lista = new List<SIPMaePersona>();
            lista = personaService.AgregaTelefonoManteService(n_IdePersona, v_Prefijo,v_NumTelefono, n_IdeUsuario);
            return View("RODatosTelefono", lista.FirstOrDefault());
        }

        public ActionResult AgregaCorreoElectronicoMante(int n_IdePersona, string v_Correo)
        {
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            List<SIPMaePersona> lista = new List<SIPMaePersona>();
            lista = personaService.AgregaCorreoElectronicoManteService(n_IdePersona, v_Correo, n_IdeUsuario);
            return View("RODatosCorreo", lista.FirstOrDefault());
        }

        public ActionResult EditarDireccionPersonaMante(int n_idePersonaMante)
        {
            ViewBag.Regiones = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_REGIONES);
            ViewBag.TipoZona = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ZONA);
            ViewBag.TipoVia = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIA);
            PersonaService personaService = new PersonaService();
            return View(personaService.ListaDatosPersonasService(n_idePersonaMante).FirstOrDefault());
        }

        public ActionResult AgregarDireccionPersonaMante(int n_IdeTipoVia, string v_NomVia, string v_NumPuerta, string n_vLetra, int n_IdeTipoZona, string v_NomZona,
                                                        string v_CenPob, string n_Block, string n_Piso, string n_Interior, string v_Manzana, string v_Lote, string v_Kilometro,
                                                        string v_Ref, int n_IdeRegionNac, int n_IdeProvDir, int n_IdeDistritoDir, int n_IdePersona)
        {
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            PersonaService personaService = new PersonaService();
            SIPDetDireccion direccion = new SIPDetDireccion();

            direccion.nIdePersona = n_IdePersona;
            direccion.nIdeTipoVia = n_IdeTipoVia;
            direccion.vNomVia = v_NomVia;
            direccion.vNumPuerta = v_NumPuerta;
            direccion.vLetra = n_vLetra;
            direccion.nIdeTipoZona = n_IdeTipoZona;
            direccion.vNomZona = v_NomZona;
            direccion.vCenPoblado = v_CenPob;
            direccion.vNumBlock = n_Block;
            direccion.vPiso = n_Piso;
            direccion.vInterior = n_Interior;
            direccion.vManzana = v_Manzana;
            direccion.vLote = v_Lote;
            direccion.vKilometro = v_Kilometro;
            direccion.vRefer = v_Ref;
            direccion.nIdeDpto = n_IdeRegionNac;
            direccion.nIdeProv = n_IdeProvDir;
            direccion.nIdeDistrito = n_IdeDistritoDir;
            direccion.nIdeUsuReg = n_IdeUsuario;

            //personaService.AgregarDireccionInvService(direccion);
           // List<SIPMaePersona> lista = new List<SIPMaePersona>();
          //  lista = personaService.AgregarDireccionPersonaManteService(direccion);
            //personaService.AgregarDireccionInvService(direccion);
            return View("RODatosDireccionPersona", personaService.AgregarDireccionPersonaManteService(direccion).FirstOrDefault());
        }

        public ActionResult EditarDatosAcademicaMante_old(int n_IdePersona)
        {
            ViewBag.NivelEstudio    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_ESTUDIO);
            ViewBag.TipoInstitucion = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_INSTITUCION);
            ViewBag.TipoEstudio     = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ESTUDIO);
            ViewBag.GradoAcademico  = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_GRADO_ACADEMICO);
            ViewBag.Idiomas         = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_IDIOMAS);
            ViewBag.NivelIdiomas    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_NIVEL_IDIOMA);
            ViewBag.CertiIdiomas    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CERTIFICACION_IDIOMA);
            ViewBag.OtrosEstudios   = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_ESTUDIO);
            ViewBag.OtroTipoEstudio = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTRO_TIPO_ESTUDIO);
            ViewBag.Reconocimientos = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_RECONOCIMIENTO);
            ViewBag.TipoRecono      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_RECONOCIMIENTO);
            ViewBag.TrabajoSocial   = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TRABAJO_SOCIAL);            
            PersonaService personaService = new PersonaService();            
            return View(personaService.ListaDatosPersonasService(n_IdePersona).FirstOrDefault());
        }

       // n_IdeCarrera: n_IdeCarrera,n_AnnioCur: n_AnnioCur, n_IdeEscala: n_IdeEscala, n_IdeDesemp: n_IdeDesemp, n_IdeCiclo: n_IdeCiclo,
       //   v_Campus: v_Campus, n_CodigoUni: n_CodigoUni

        public ActionResult RegistraInfoAcademicaMante(int n_IdeNivelEstudio, int n_IdeTipoInst, int n_IdeInstitucion,
                                                        string d_FecIniAct, string d_FecFinAct, string n_Promedio,
                                                        int n_IdePersona, string cadenaNotas, string n_IdeCarrera,
                                                        string n_AnnioCur, string n_IdeEscala, string n_IdeDesemp, 
                                                        string n_IdeCiclo, string v_Campus,string n_CodigoUni, 
                                                        string n_CostoMensual, string n_CostoMatricula)
        {
            int n_IdeTipoEstudio = 0;
            int n_IdeGrado = 0;
            n_IdeTipoEstudio = (string.IsNullOrEmpty(Request["n_IdeTipoEstudio"]) ? 0 : Int32.Parse(Request["n_IdeTipoEstudio"]));
            n_IdeGrado = (string.IsNullOrEmpty(Request["n_IdeGrado"]) ? 0 : Int32.Parse(Request["n_IdeGrado"]));
            
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            personaService.RegistraInfoAcademicaInvService(n_IdeNivelEstudio, n_IdeTipoInst, n_IdeInstitucion, d_FecIniAct, d_FecFinAct,
                                                    n_Promedio, n_IdeTipoEstudio, n_IdeGrado, n_IdeUsuario, n_IdePersona, cadenaNotas,
                                                    n_IdeCarrera, n_AnnioCur, n_IdeEscala, n_IdeDesemp, n_IdeCiclo, v_Campus, n_CodigoUni,
                                                    n_CostoMensual, n_CostoMatricula);

            return View("ROCentroEstudios", personaService.ListaDatosPersonasService(n_IdePersona).FirstOrDefault());
        }

        public ActionResult RegistraInfoAIdiomaMante(int nIdeHabla, int nIdeLee, int nIdeEscribe, int n_Idioma, int n_IdeNivelIdioma, int n_IdePersona)
        {
            int n_CertiIdioma = 0;
            n_CertiIdioma = (string.IsNullOrEmpty(Request["v_CertiIdioma"]) ? 0 : Int32.Parse(Request["v_CertiIdioma"]));            
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            PersonaService personaService = new PersonaService();
            return View("ROIdiomas", personaService.RegistraInfoAIdiomaInvService(nIdeHabla, nIdeLee, nIdeEscribe, n_IdeNivelIdioma, n_CertiIdioma, n_IdeUsuario, n_IdePersona, n_Idioma).FirstOrDefault());
        }

        public ActionResult RegistraInfoOtrosEstudiosMante(int n_OtroEstudio, int n_IdeInstitucionOtro, int n_AnioOtro, int n_IdePersona)
        {
            int n_TipoOtroEstudio   = 0;
            n_TipoOtroEstudio       = (string.IsNullOrEmpty(Request["n_TipoOtroEstudio"]) ? 0 : Int32.Parse(Request["n_TipoOtroEstudio"]));            
            int n_IdeUsuario        = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            PersonaService personaService = new PersonaService();
            return View("ROOtrosEstudios", personaService.RegistraInfoOtrosEstudiosInvService(n_OtroEstudio, n_IdeInstitucionOtro, n_AnioOtro, n_TipoOtroEstudio, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }

        public ActionResult RegistraInfoReconocimientoMante(int n_IdeRecono, int n_IdeInstitutoRecono, int n_AnioRecono, int n_IdePersona)
        {
            int n_TipoRecono    = 0;
            n_TipoRecono        = (string.IsNullOrEmpty(Request["n_TipoRecono"]) ? 0 : Int32.Parse(Request["n_TipoRecono"]));
            int n_IdeUsuario    = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            PersonaService personaService = new PersonaService();
            return View("ROReconocimiento", personaService.RegistraInfoReconocimientoService(n_IdeRecono, n_IdeInstitutoRecono, n_AnioRecono, n_TipoRecono, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }

        public ActionResult RegistraInfoTrabajoSocialMante(int n_IdeTipoTrabajo, int n_AnioTrabajo, string v_DescTrabajo, int n_IdePersona)
        {            
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            PersonaService personaService = new PersonaService();
            return View("ROTrabajoSocial", personaService.RegistraInfoTrabajoSocialInvService(n_IdeTipoTrabajo, n_AnioTrabajo, v_DescTrabajo, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }
        public ActionResult EditarDatosSocioEconomicaMante_old(int n_IdePersona)
        {
            ViewBag.PaisEmisor          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
           // ViewBag.TipoDocIdent        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            ViewBag.Profesiones         = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROFESIONES);
            ViewBag.Cie10               = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CIE10);
            ViewBag.TipoVivienda        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIVIENDA);
            ViewBag.ParentescoFamiliar  = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PARENTESCO_FAMILIAR);            
            PersonaService personaService = new PersonaService();
            return View(personaService.ListaDatosPersonasService(n_IdePersona).FirstOrDefault());
        }
        public ViewResult RegistraInfoSocioEconomicaMante(int n_NummiembrosFam, int n_JefeFamilia, int n_NumDependientes, int n_IdeProfesion,
                                                        int n_IdeTipoVivienda, decimal n_ValorComercial, int n_IdePersona)
        {
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            return View("ROSocioEconomica", personaService.RegistraInfoSocioEconomicaInvService(n_NummiembrosFam, n_JefeFamilia, n_NumDependientes, n_IdeProfesion, n_IdeTipoVivienda, n_ValorComercial, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }
        public ViewResult registrarRefFamiliarSocioMante(int n_IdePersonaSocio, int n_IdeParentesco, int n_IdeTrabaja, int n_IdeViveContigo, int n_IdePersona)
        {
            int n_IdeCie10          = 0;
            decimal n_Remuneracion  = 0;
            n_IdeCie10              = (string.IsNullOrEmpty(Request["n_IdeCie10"]) ? 0 : Int32.Parse(Request["n_IdeCie10"]));
            n_Remuneracion          = (string.IsNullOrEmpty(Request["n_Remuneracion"]) ? 0 : Decimal.Parse(Request["n_Remuneracion"]));
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            return View("ROSocioEconomicaRefFam", personaService.RegistrarRefFamiliarSocioInvService(n_IdePersonaSocio, n_IdeParentesco, n_IdeTrabaja, n_IdeViveContigo, n_IdeCie10, n_Remuneracion, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }
        public ActionResult EditarDatosLaboralesMante_old(int n_IdePersona)
        {
            ViewBag.PaisEmisor          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            //ViewBag.TipoDocIdent        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            ViewBag.CondicionLaboral    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CONDICION_LABORAL);
            ViewBag.CargoLaboral        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CARGO_LABORAL);
            ViewBag.EstadoLaboral       = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESTADO_LABORAL);
            ViewBag.OtrosIngresos       = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_OTROS_INGRESOS);            
            PersonaService personaService = new PersonaService();
            return View(personaService.ListaDatosPersonasService(n_IdePersona).FirstOrDefault());
        }
        public ViewResult RegistraDatosLaboralesMante(int n_IdeEmpresaLabora, int n_IdeEstadoLaboral, int n_IdeCargoLaboral, decimal n_RemuneNeta,
                                                     string d_FecIngresoLabo, int n_IdeCondicionLaboral, int n_IdePersona, string v_CodigoTrab,
                                                    string n_IdeDpto, string n_IdeProv, string n_IdeDistrito, string n_IdeTipoTrab, string d_FecFinLabo,
                                                    string n_rph,string n_IdeTipoSede,string v_NombreSede)
            {            
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            return View("RODatosLaborales", personaService.RegistraDatosLaboralesInvService(n_IdeEmpresaLabora, n_IdeEstadoLaboral, n_IdeCargoLaboral, 
                                                                                            n_RemuneNeta, d_FecIngresoLabo, n_IdeCondicionLaboral,
                                                                                            n_IdeUsuario, n_IdePersona, v_CodigoTrab, n_IdeDpto,
                                                                                            n_IdeProv, n_IdeDistrito, n_IdeTipoTrab, d_FecFinLabo,
                                                                                            n_rph, n_IdeTipoSede, v_NombreSede).FirstOrDefault());
        }
        public ViewResult RegistraOtrosIngresosMante(int n_IdeOtroIngreso, int n_MontoOtroIngreso, int n_IdePersona, int tipo)
        {
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            string vista = "ROOtrosIngresos";
            if (tipo == 2) vista = "ROOtrosEgresos";
            return View(vista, personaService.RegistraOtrosIngresosInvService(n_IdeOtroIngreso, n_MontoOtroIngreso, n_IdeUsuario, n_IdePersona, tipo).FirstOrDefault());
        }

        public ActionResult EditarDatosBeneficioMante_old(int n_IdePersona)
        {
            ViewBag.PaisEmisor          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            //ViewBag.TipoDocIdent        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            ViewBag.ConceptoPrograma    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PROGRAMAS);
            ViewBag.TipoBeneficios      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_BENEFICIOS);           
            PersonaService personaService = new PersonaService();
            return View(personaService.ListaDatosPersonasService(n_IdePersona).FirstOrDefault());
        }
        public ViewResult RegistraDatosBeneficioMante(int n_IdeIntitutoBene, int n_IdeTipoBene, int n_AnioBene, int n_IdeConceptoBene, int n_IdePersona)
        {
            decimal n_CostoBene = 0;
            decimal n_PorceBeca = 0;
            decimal n_PorceCredito = 0;
            n_CostoBene = (string.IsNullOrEmpty(Request["n_CostoBene"]) ? 0 : Int32.Parse(Request["n_CostoBene"]));
            n_PorceBeca = (string.IsNullOrEmpty(Request["n_PorceBeca"]) ? 0 : Decimal.Parse(Request["n_PorceBeca"]));
            n_PorceCredito = (string.IsNullOrEmpty(Request["n_PorceCredito"]) ? 0 : Decimal.Parse(Request["n_PorceCredito"]));
            PersonaService personaService = new PersonaService();            
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            return View("ROBeneficios", personaService.RegistraDatosBeneficioInvService(n_IdeIntitutoBene, n_IdeTipoBene, n_AnioBene, n_IdeConceptoBene, n_CostoBene, n_PorceBeca, n_PorceCredito, n_IdeUsuario, n_IdePersona).FirstOrDefault());
        }

        public ViewResult ListaPersonaMante(string v_NombresPersona,string sw)
        {
            ViewBag.sw = sw;
            PersonaService personaService = new PersonaService();
            List<SIPMaePersona> lista = new List<SIPMaePersona>();
            lista = personaService.ListaPersonaManteService(v_NombresPersona);
            return View(lista);
        }
      
        public ActionResult AddPersonaNaturalPop_old(string sw)
        {
            cargaPersonaNaturalPop();
            ViewBag.swReg = sw;
            return View();
        }

        [HttpPost]
        public ActionResult AddPersonaNaturalPop_old(SIPMaePersona sipMaePersona)
        {
            if (ModelState.IsValid)
            {
                string swReg = Request["swReg"];
                
                PersonaService personaService = new PersonaService();
                String[] rpta = personaService.AddNuevaPersonaPoPupService(sipMaePersona);
                string nombrecito = rpta[3];
                var rptax = new HtmlString(nombrecito);
                ViewBag.nombre = nombrecito;
                return RedirectToAction("RptaAddDatosPersona", new { nIdePersona = rpta[0], sw = swReg, pais = sipMaePersona.nIdeCodPaisDoc, tipo = sipMaePersona.nIdeTipoDocum, numero = sipMaePersona.vNumDocum, nombre = sipMaePersona.vPriNombre + " " + sipMaePersona.vPriApellido + " " + sipMaePersona.vSegApellido });
            }
            cargaPersonaNaturalPop();
            return View(sipMaePersona);
        }

        public HtmlString RptaAddDatosPersona(string nIdePersona, string sw, string pais, string tipo, string numero, string nombre)
        {
            StringBuilder rpta1 = new StringBuilder("");
            if (sw.Equals("1"))
            {
                rpta1.Append("window.opener.parent.document.getElementById('nIdePersonSolicita').value='" + nIdePersona + "';");
                rpta1.Append("window.opener.parent.document.getElementById('nIdeCodPaisDocSol').value='" + pais + "';");
                rpta1.Append("window.opener.parent.document.getElementById('nIdeTipoDocumSol').value='" + tipo + "';");
                rpta1.Append("window.opener.parent.document.getElementById('vNumDocumSol').value='" + numero + "';");
                rpta1.Append("window.opener.parent.document.getElementById('vNombresSol').value='" + nombre + "';");                
            }
            else if (sw.Equals("0"))
            {
                rpta1.Append("window.opener.parent.document.getElementById('nIdePersona').value='" + nIdePersona + "';");
                rpta1.Append("window.opener.parent.document.getElementById('botonClic').click();");
            }
            else if (sw.Equals("2") || sw.Equals("3"))
            {
                rpta1.Append("window.opener.parent.objnIdePersona.value='" + nIdePersona + "';");
                rpta1.Append("window.opener.parent.objPaisDoc.value='" + pais + "';");
                rpta1.Append("window.opener.parent.objTipoDoc.value='" + tipo + "';");
                rpta1.Append("window.opener.parent.objNumDoc.value='" + numero + "';");
                rpta1.Append("window.opener.parent.objNombre.value='" + nombre + "';");
            }

            rpta1.Append("window.close();");
            var rptax = new HtmlString(string.Format("<script language='javascript' type='text/javascript'>{0}</script>", rpta1));
            return (HtmlString)rptax;
        }
        
        private void cargaPersonaNaturalPop()
        {
            ViewBag.PaisEmisor      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            //ViewBag.TipoDocIdent    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            ViewBag.Genero          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_GENERO_PERSONA);
            ViewBag.EstadoCivil     = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_ESTADO_CIVIL);
            ViewBag.Regiones        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_REGIONES);            
            ViewBag.TipoZona        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_ZONA);
            ViewBag.TipoVia         = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_VIA);
        }

        public HtmlString CheckExisteDocumentoPersonaMante(int n_IdeCodPaisDoc, int n_IdeTipoDocum, string v_numDocum,
                                                            string sw, string n_IdePersona, string tipoPersona)
        {
            PersonaService personaService = new PersonaService();
            int rpta = personaService.CheckExisteDocumentoPersonaManteService(n_IdeCodPaisDoc, n_IdeTipoDocum, v_numDocum, sw, n_IdePersona, tipoPersona);
            var resultado = "{\"rpta\":" + rpta + "}";
            return new HtmlString(resultado);
        }
        public ViewResult UpdateDatosPersonaInp(int nIdePerson)
        {
            ViewBag.PaisEmisor      = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            //ViewBag.TipoDocIdent    = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.TipoDocIdent = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_IDENTIFICA_PERSONA);
            ViewBag.Genero          = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_GENERO_PERSONA);
            ViewBag.Regiones        = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_REGIONES);
            PersonaService personaService = new PersonaService();
            SIPMaePersona persona = new SIPMaePersona();
            persona = personaService.ListaDatosPersonasService(nIdePerson).FirstOrDefault();
            return View(persona);            
        }

        [HttpPost]
        public ActionResult UpdateDatosPersonaInp(SIPMaePersona sipMaePersona)
        {
            if (ModelState.IsValid)
            {
                //string nIdePersona, string sw, string pais, string tipo, string numero, string nombre
                string swReg = Request["swReg"];
                PersonaService personaService = new PersonaService();
                String[] rpta = personaService.UpdateDatosPersonaInpService(sipMaePersona);
                return RedirectToAction("RptaAddDatosPersona", new { nIdePersona = rpta[0], sw = swReg });
            }
            cargaPersonaNaturalPop();
            return View(sipMaePersona);
        }

        public ActionResult ListaDireccionPersonaRO(int nIdePersona)
        {
            PersonaService personaService = new PersonaService();
            return View("RODatosDireccionPersona", personaService.personaByIdService(nIdePersona));
        }

        public ViewResult RegistraPatrimonioMante(int n_IdeTipoBien,string n_IdeSubTipo, string n_AnioBien, string d_FecReside, 
                                                  decimal n_Valor, int n_IdePersona)
        {
            PersonaService personaService = new PersonaService();
            int n_IdeUsuario = Int32.Parse(Session[Constante.N_IDE_USUARIO].ToString());
            SIPMaePersona sipMaePersona = new SIPMaePersona();
            sipMaePersona = personaService.RegistraPatrimonioManteService(n_IdeTipoBien, n_IdeSubTipo, n_AnioBien, d_FecReside, n_Valor, 
                                    n_IdeUsuario, n_IdePersona);

            return View("RODatosPatrimonio", sipMaePersona);
        }

        //ListaAdjuntosPersona
        public ActionResult UpLoadFilePersona(string nIdePersona, string swReg)
        {

            ViewBag.nIdePersona = nIdePersona;
            if (string.IsNullOrEmpty(nIdePersona))
            {
                return View("sinIdPersona");
            }
            else
            {
                PersonaService personaService = new PersonaService();
                //personaService.ListaDatosPersonasService(Int32.Parse(nIdePersona)).FirstOrDefault()
                return View("update/UpLoadFilePersonaInp", personaService.personaByIdService(Int32.Parse(nIdePersona)));                
            }
        }

        



    }
}



